<?php

namespace app\common\model\Subject;

use think\Model;

// 引入软删除的模型
use traits\model\SoftDelete;

class Subject extends Model
{

    //在模型内部去引入软删除
    use SoftDelete;
    //表名
    protected $name = 'subject';

     //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true;

    //设置字段的名字
    protected $createTime = "createtime"; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

     //设置软删除的字段更新的时间字段
     protected $deleteTime = 'deletetime';
    // 增加的获取器字段
    protected $append = [
        'thumbs_text',
        'createtime_text',
        'likes_text'
    ];

    public function getThumbsTextAttr($value,$data){
        //获取到cdn的地址
        $cdnurl = config('site.cdnurl') ? config('site.cdnurl') : '';
        $cdnurl = trim($cdnurl, '/');

        
        $thumbs = isset($data['thumbs']) ? $data['thumbs'] : '';
        // var_dump($thumbs);
        // exit;
        // 如果为空或者不是一个图片的话
        if(empty($thumbs) || !is_file(".".$thumbs)){
            $thumbs = '/assets/home/images/video.jpg';
        }
        return $cdnurl.$thumbs;
    }

    public function getCreateTimeTextAttr($value,$data){
        $createtime = isset($data['createtime']) ? trim($data['createtime']) : '';
        if(empty($createtime)){
            return '';
        }
        return date('Y-m-d H-i',$createtime);
    }

    public function getLikesTextAttr($value,$data){
        $likes = isset($data['likes']) ? trim($data['likes']) : '';
        if(empty($likes)){
            return 0;
        }
        // 将字符串变成数组
        $arr = explode(",",$likes);

        // 统计数组的长度就是点赞的个数
        return count($arr);
    }


    // 定义一个关联查询的方法、、查询分类
    public function category(){
        // subject.cateid = category.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Subject\Category','cateid','id',[],'LEFT')->setEagerlyType(0);
    }

}
